import re
from collections import Counter
import torch
import torch.nn as nn

# 读取文本文件
with open('./data/input.txt', 'r') as f:
    text = f.read()

# 对文本进行预处理，移除标点符号并转换为小写
text = re.sub(r'[^\w\s]', '', text).lower()

# 分割文本为单词
words = text.split()

# 统计每个单词的频率
word_freq = Counter(words)

# 为每个单词分配一个唯一的索引
vocab = {word: idx for idx, (word, _) in enumerate(word_freq.items())}

# 将单词转换为对应的索引
indices = [vocab[word] for word in words]

# 创建一个嵌入层，词汇表大小为 len(vocab)，嵌入维度为 100（可以根据需要调整）
embedding_dim = 100
embedding = nn.Embedding(len(vocab), embedding_dim)

# 将索引序列转换为张量
indices_tensor = torch.LongTensor(indices)

# 通过嵌入层将索引序列转换为嵌入向量
embedded_vectors = embedding(indices_tensor)

# 打印一些嵌入向量以查看结果
print(embedded_vectors[:10])
